关于JAVA 的问题^

来源:百度知道 编辑:UC知道 时间:2024/05/14 19:01:19
1.在一个类中有个实例变量,是不是在类中的每个方法中都要对这个实例变量实例化??有没有例外?
我对什么时候要声明,什么时候要实例化不太懂,可不可以教教我??
2.方法中的形参的类型能不能省?例如:public void go( int x){

}
这个中的int能不能省??为什么??
例如;
import wheels.users.*;
pubilc class Hat{
private Rentangle _hatBrim;
pulic Hat{
_hatBrim = new Rectangle(java.awt.color.black);
//这一个中已经创建了一个实例对象.
_hatBrim.setSize(20,50);
}
public void setLocation(int x,int y){
_hatBrim.setLocation(x,x+50);
//为什么在这里就不用在创建_hatBrim了?
//如果没有构造方法,而是一般几个方法.那要创建几次?
}
}

1:这个问题提得很模糊....一般来说,类的方法是用来处理类的实例变量的,而你说的“实例化”一般是对类而言的,所以我只能认为你说的实例变量不是基本类型而是引用类型了。类中的每个方法对引用类型有没有实例化要看程序员的需要而言,一般实例化都在构造函数中完成
2:声明方法时不能省,调用方法时当然就不可以加上,加上得话就错了

因为HAT类实例化的时候先调用它的构造函数,构造函数中已经为Rectangle类型的成员变量_hatBrim实例化了(也就是分配了内存),接下来方法中用到_hatBrim就不用实例化了

先纠正一点,一个类总是有构造方法的,如果没有显式的构造方法那就是调用了JAVA默认的构造方法,这个构造方法里没有代码。那么你在其中一个方法中就要实例化,当然别的方法中就不用实例化了(如果实例化的话,那么变量引用就指向这个新的实例化对象了)。但这样做不如在构造方法中实例化安全,因为你一定要确保你先调用有实例化的那个方法,再调用没有实例化的方法,这样才不会出错。

你说的那个int类型是绝对不能省的.你可以想想,要是能省的话,怎么判断传给方法的是什么类型的值,还有,类中的属性,有两种方法给它值,一程是实例化的时候,通过构造方法给它初始化,还有一种,就是在方法里给赋值,也可以两种方法都不用,就是不给它值,这样也不会报错,只系统会给你提示,这个变量从来没用过,也可以运行.

其他的类中:
int i = 1;
类名.go(i);//调用这个方法,参数为1

//跳入到下面的方法中
public void go( int x){
//好比你像喝水,别人送你瓶无色液体,你怎么知道水还是毒药?如果是毒药你肯定挂了,括弧中的 类型相当一个验证器,是水放进来,不是赶出去
}